export default {
  // 为当前模块开启命名空间
  namespaced: true,

  // 模块的 state 数据
  state: {
    address: JSON.parse(uni.getStorageSync('address') || '{}'),
    token: uni.getStorageSync('token') || '',
    // 用户的个人信息对象
    userInfo: JSON.parse(uni.getStorageSync('userInfo') || '{}'),
    // 重定向的object对象
    redirectInfo: null,
  },

  // 模块的 mutations 方法
  mutations: {
    // 更新收货地址的方法
    updateAddress(state, address) {
      state.address = address
      this.commit('userInfo/saveAddressToStorage')
    },
    // 持久化存储 address
    saveAddressToStorage(state) {
      uni.setStorageSync('address', JSON.stringify(state.address))
    },
    // 把外界传来的用户信息赋值给state
    updateUserInfo(state, UserInfo) {
      state.userInfo = UserInfo
      // 调用下面这个方法，实现持久化存储
      this.commit('userInfo/saveUserInfo')
    },
    // 持久化存储
    saveUserInfo(state) {
      uni.setStorageSync('userInfo', JSON.stringify(state.userInfo))
    },
    updateToken(state, token) {
      state.token = token
      this.commit('userInfo/saveTokenStorage')
    },
    // 本地持久化存储token
    saveTokenStorage(state) {
      uni.setStorageSync('token', state.token)
    },
    updateRedirectInfo(state, info) {
      state.redirectInfo = info
    }
  },

  // 模块的getters方法
  getters: {
    // 拼接收货地址
    addressStr(state) {
      if (state.address !== '') {
        return (
          state.address.provinceName +
          '-' +
          state.address.cityName +
          '-' +
          state.address.countyName +
          '-' +
          state.address.detailInfo
        );
      } else {
        return '';
      }
    },
  }
}
